﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Telerik.WinControls.UI;
using log4net;
namespace QuanLyNhaSach
{
    public partial class FormPhu_KhachHang : Form
    {
        static FormPhu_MatHang doituong = null;
        #region "tao bien"
        sv_QuanLyNhaSach.AdapterClient xuly = new sv_QuanLyNhaSach.AdapterClient();
        private ILog logger;
        #endregion        
        KiemTraBatLoi batloi = new KiemTraBatLoi();
        public static FormPhu_MatHang TaoDoiTuong()
        {
            if (doituong == null)
                doituong = new FormPhu_MatHang();
            return doituong;
        }
        
        public FormPhu_KhachHang()
        {
            InitializeComponent();
        }
        
        private void btnluu_Click(object sender, EventArgs e)
        {
            errorProvider1.Clear();
            try
            {
               
                if (txt_tenkh.Text.Trim()=="" || batloi.Is_HoTen(txt_tenkh.Text) == false)
                {
                    errorProvider1.SetError(txt_tenkh, "Tên khách hàng không được nhập số hoặc bổ trống");
                    txt_tenkh.Focus();
                    return;
                }
                if (batloi.Is_Numbers(txt_sofax.Text) == false)
                {
                    errorProvider1.SetError(txt_sofax, "Số fax chỉ được nhập số và không bỏ trống");
                    txt_sofax.Focus();
                    return;
                }
                if (txt_sdt.Text.Trim()==""|| batloi.Is_Numbers(txt_sdt.Text) == false)
                {
                    errorProvider1.SetError(txt_sdt, "Số điện thoại chỉ được nhập số và không bỏ trống");
                    if (batloi.Is_DoDaiSoDT(txt_sdt.Text) == false)
                    {
                        errorProvider1.SetError(txt_sdt, "Độ dài số điện thoại không đúng");
                        txt_sdt.Focus();
                        return;
                    }
                    return;
                }
                if (batloi.Is_Numbers(txt_congno.Text.ToString()) == false)
                {
                    errorProvider1.SetError(txt_congno, "Công nợ chỉ được nhập số");
                    txt_congno.Focus();
                    return;
                }
                if (batloi.TestValidEmail(txt_email.Text) == false)
                {
                    errorProvider1.SetError(txt_email, "Email định dạng không đúng");
                    txt_email.Focus();
                    return;
                }
                if (txt_diachi.Text.Trim()=="")
                {
                    errorProvider1.SetError(txt_diachi, "Địa chỉ không được bỏ trống");
                    txt_diachi.Focus();
                    return;
                }
                string makh = txt_makh.Text;
                string tenkh = txt_tenkh.Text;
                string sdt = txt_sdt.Text;
                string diachi = txt_diachi.Text;
                string email = txt_email.Text;
                int sofax = int.Parse(txt_sofax.Text);
                double congno = double.Parse(txt_congno.Text)+0;
                string masothue = txt_masothue.Text;
                
                
                if (!xuly.InsertKH(makh, tenkh, sdt, diachi, email, sofax, congno, masothue))
                {
                    MessageBox.Show("Thêm thất bại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                else
                {
                    MessageBox.Show("Thêm thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txt_makh.Text = TaoKHKeTiep();
                    txt_tenkh.Text = "";
                    txt_sdt.Text = "";
                    txt_diachi.Text = "";
                    txt_email.Text = "";
                    txt_sofax.Text = "";
                    txt_congno.Text = "";
                    txt_masothue.Text = "";
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show("Lỗi: "+ ex.Message);
            }
        }

        private void FormPhu_KhachHang_Load(object sender, EventArgs e)
        {
            logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            try
            {

                    txt_makh.Text = TaoKHKeTiep();
                    txt_makh.Enabled = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi: "+ex.Message);
            }            
        }

        private string TaoKHKeTiep()
        {
            try
            {
                DataSet ds_tam = new DataSet();
                string mamoi;
                string maTam = "KH";
                ds_tam.ReadXml(new StringReader(xuly.selectqueryByText("select top 1 MaKH from KHACHHANG where MAKH like '%" + maTam + "%'order by MAKH desc")));
                if (ds_tam.Tables.Count == 0)
                    mamoi = maTam + "0001";
                else
                {
                    string matam = ds_tam.Tables[0].Rows[0][0].ToString();
                    string kituso = matam.Substring(2, 4).ToString();
                    int somoi = int.Parse(kituso) + 1;
                    mamoi = maTam + somoi.ToString("0000");
                }
                return mamoi;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi: " + ex.Message);
            }
            return "";
        }

        private void bt_Thoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
